Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"

%PAGE

8. ÈHTEPÏPETATOP ßÇÛKOB PAÏÈPA È POÁÈK

8.1. ßäpo cècòeìû.

8.1.1. Cocòaâ ÿäpa.

B ò.í. \ÿäpo cècòeìû\ âxoäÿò cëeäóþùèe ïoäïpoãpaììû:

%LIST

-Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ (CÓÏ).
-Ïoäïpoãpaììû óïpaâëeíèÿ ïpoãpaììíûìè còeêaìè (ÏÓÏC).
-Ïoäïpoãpaììû óïpaâëeíèÿ äèíaìè÷ecêèìè áóôepaìè.
-Ïpoãpaììû êoïèpoâaíèÿ è óíè÷òoæeíèÿ äèíaìè÷ecêèx oáúeêòoâ (COPY/DELETE).
-Ïoäcècòeìa ââoäa-âûâoäa.

%ENDL

Hèæe oïècûâaeòcÿ íaçía÷eíèe è còpóêòópa ýòèx ïoäïpoãpaìì.

8.1.2. Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ (CÓÏ).

Ïoäcècòeìa óïpaâëeíèÿ ïaìÿòüþ ocóùecòâëÿeò ïoëíûé êoíòpoëü ça pacïpeäeëeíèeì ïaìÿòè ïo ìeòoäó "áëèçíeöoâ" ([6]). Bûáop ýòoão ìeòoäa ïoçâoëÿeò oáecïe÷èòü òpeáóeìóþ cêopocòü óäoâëeòâopeíèÿ ÷acòûx çaïpocoâ ía âûäeëeíèe è ocâoáoæäeíèe ïaìÿòè ïpè paáoòe c oáúeêòaìè äèíaìè÷ecêoã paçìepa.

Coãëacío ìeòoäó "áëèçíeöoâ" ïóë äèíaìè÷ecêoé ïaìÿòè è âce âûäeëÿeìûe áëoêè ìoãóò èìeòü äëèíó òoëüêo 2**N. Maêcèìaëüíoe çía÷eíèe N â äaííoé peaëèçaöèè - 15(¤F), ÷òo cooòâeòcòâóeò ïóëó â 32 Káaéòa. B cècòeìe peaëüío ècïoëüçóþòcÿ áëoêè íe ìeíüøe 4 áaéòoâ.

Cïècoê câoáoäíoé ïaìÿòè ïpeäcòaâëÿeòcÿ òaáëèöeé ACÏ. Äëÿ áëoêoâ êaæäoão paçìepa â íeé oòâeäeíû paçäeëû ïo 4 áaéòa, â êoòopûx xpaíÿòcÿ ccûëêè ía ïepâûé è ïocëeäíèé câoáoäíûe áëoêè â äâócâÿçíoì cïècêe. Äâócâÿçíûé cïècoê oáëeã÷aeò ècêëþ÷eíèe áëoêa èç cïècêa ïpè eão âûäeëeíèè èëè cëèÿíèè c áëèçíeöoì. Ïoâcþäó â cïècêe oòcóòcòâèe ccûëêè oáoçía÷aeòcÿ íóëeì â còapøeì áaéòe aäpeca.

Ocoáeííocòè peaëèçaöèè ìeòoäa "áëèçíeöoâ":

%LISTD

-Ïocêoëüêó aäpec áëoêa-áëèçíeöa oïpäeëÿeòcÿ êaê "aácoëþòíûé aäpec áëoêa" EOR "äëèía áëoêa", aäpec êaæäoão áëoêa äoëæeí áûòü êpaòeí eão äëèíe. Eäèícòâeííoe íeâûïoëíeíèe ýòoão ócëoâèÿ (aäpec ïóëa ¤4000 íe êpaòeí eão paçìepó ¤8000) ïpèâoäèò ê íeâoçìoæíocòè oáúeäèíeíèÿ äâóx áëoêoâ paçìepoì â ïoëïóëa, ío ýòo peaëüío è íe òpeáóeòcÿ. Booáùe æe, íapóøeíèe ýòoão òpeáoâaíèÿ oïacío.

-Çaíÿòûe è câoáoäíûe áëoêè â ïóëe pacïoçíaþòcÿ ïo 2 ìëaäøèì áèòaì câoeão 0-ão áaéòa (òeãó äecêpèïòopa). Bce òeãè, êpoìe 0,4,8,¤C, oçía÷aþò, ÷òo áëoê çaíÿò, è cëóæaò äëÿ pacïoçíaâaíèÿ âèäoâ oáúeêòoâ. B ïpoòèâíoì cëó÷ae áëoê câoáoäeí, è ïepâûe 4 áaéòa â íeì çaíèìaþò 2 aäpeca (ccûëêè ía ïpeäûäóùèé è cëeäóþùèé câoáoäíûe áëoêè òoão æe paçìepa). Taêoe pacïoçíaâaíèe âoçìoæío ïoòoìó, ÷òo aäpec ëþáoão áëoêa êpaòeí 4, ò.e. 2 ìëaäøèx áèòa aäpeca paâíû 00. Mëaäøèé áaéò òaêoão aäpeca è xpaíèòcÿ â 0-oì áaéòe câoáoäíoão áëoêa.

-B äecêpèïòope çaíÿòoão áëoêa (áèòû 7-4) xpaíèòcÿ êoícòaíòa N-2, paâíaÿ log2(äëèía áëoêa)-2. Ó ÷èceë, äëÿ ïpeäcòaâëeíèÿ êoòopûx äocòaòo÷ío ¤80 áaéòoâ (N-2=5), 7 áèò oòâeäeí äëÿ çíaêa. Ïpè ocâoáoæäeíèè áëoêa CÓÏ ècïoëüçóeò òeã è â çaâècèìocòè oò íeão oïpeäeëÿeò äëèíó áëoêa ïo 3 èëè 4 áèòaì N-2.

-5-é ïo ïopÿäêó áaéò câoáoäíoão áëoêa çaíèìaeò êoícòaíòa ¤F0+(N-2). Oía ècïoëüçóeòcÿ òoëüêo ïpè cëèÿíèè áëoêoâ äëÿ oïpeäeëeíèÿ áëèçíeöa.

%LEFT 5

B caìoì äeëe, ïpè cëèÿíèè c áëèçíeöoì íeoáxoäèìo ïpoâepèòü, íe paçáèò ëè oí ía áoëee ìeëêèe áëoêè, ÷acòü èç êoòopûx çaíÿòa, a caìûé ïepâûé câoáoäeí. Ïoýòoìó oäíoé ïpoâepêè òeãa íeäocòaòo÷ío, â câoáoäíoì áëoêe íóæío xpaíèòü è eão äëèíó. Cëoæeíèe c ¤F0 òpeáóeòcÿ äëÿ paçëè÷eíèÿ äâóx cèòóaöèé:

%AREA 9

  áëoê-áëèçíeö
 !-----------!-----------!---
 ! câoá.(4á) ! çaíÿò(4á) !
 !-----------!-----------!---
 
 !-----------!---------------
 ! câoáoä.áëoê (8á. è áoëee)
 !-----------!---------------
              ^

Koícòaíòa ¤FX â oòìe÷eííoì áaéòe ïoçâoëÿeò ècêëþ÷èòü ïepâóþ cèòóaöèþ (N-2 çaíÿòoão 4-áaéòoâoão áëoêa íe ìoæeò áûòü òaêèì). Äëÿ 4-áaéòoâûx áëoêa oía íe íóæía: ýòè áëoêè óæe íe äeëÿòcÿ.

%LEFT -5

-B cècòeìe ècïoëüçóeòcÿ cëeäóþùaÿ ocoáeííocòü peaëèçaöèè CÓÏ: ïpè çaïpoce ïaìÿòè âûäeëÿeòcÿ ïocëeäíèé íeoáúeäèíeííûé ocâoáoæäeííûé áëoê äaííoé äëèíû (ïoäïpoãpaììa WBUF).

%ENDL

CÓÏ cocòoèò èç äâóx ïoäïpoãpaìì:

%LISTM

-SUP1 - âûäeëeíèe áëoêa â ïóëe. Peaëüío íeoáxoäèìoe ÷ècëo áaéòoâ (ïëþc oäèí äëÿ äecêpèïòopa) ïepeäaeòcÿ â DL. Bûäeëÿeòcÿ ìèíèìaëüíûé èç ïoäxoäÿùèx áëoêoâ: N òaêoe, ÷òo 2**(N-1) < DL <= 2**N. Aäpec âûäeëeííoão áëoêa âûäaeòcÿ â ADR4.
-SUP2 - ocâoáoæäeíèe áëoêa. Aäpec áoêa ïepeäaeòcÿ â ADR4.

%ENDL

B cècòeìe ècïoëüçóeòcÿ cëeäóþùee cocòoÿíèe peãècòpoâ ïpoöeccopa ía âûxoäe èç CÓÏ:

%LISTM

-X - íe ìeíÿeòcÿ,
-Y=A=0, Z=1 (äëÿ SUP1, ecëè âoçíèêëa cèòóaöèÿ "èc÷epïaía ïaìÿòü", A=¤0E, Z=0).

%ENDL

Äëÿ èíèöèaëèçaöèè CÓÏ äocòaòo÷ío:

%LISTM

-çaïècaòü â ïepâûe 5 áaéòoâ ïóëa 00 00 00 00 FD (ïóë ïpeäcòaâëÿeò coáoé eäèícòâeííûé câoáoäíûé áëoê);
-oáíóëèòü âce paçäeëû ACÏ, a â ïocëeäíèé çaíecòè äâa aäpeca ía÷aëa ïóëa (ía÷aëüíûé cïècoê câoáoäíoé ïaìÿòè).

%ENDL

8.1.3. Ïoäïpoãpaììû óïpaâëeíèÿ ïpoãpaììíûìè còeêaìè (ÏÓÏC).

Ïoäïpoãpaììû ÏÓÏC opãaíèçóþò ïoáaéòoâóþ paáoòó c ïpoãpaììíûìè còeêaìè (çaïècü è ÷òeíèe áaéòa).

%LIST

-WSTEK, IZSTEK - cooòâeòcòâeíío, çaïècü è ÷òeíèe oäíoão áaéòa (äëÿ ãëaâíoão còeêa);

-WSTEK1, IZSTEK1 - òo æe äëÿ âòopoão còeêa;

-WSTEK0 - cía÷aëa ïpoâepèòü, ecòü ëè â oáëacòè ïpoãpaììíûx còeêoâ ¤20 câoáoäíûx áaéòoâ; ecëè ecòü - ïepeéòè ía WSTEK, èía÷e âûäaòü oøèáêó.

-IZSTEK0 - c÷èòûâaíèe oäíoão áaéòa èç ãëaâíoão èëè âcïoìoãaòeëüíoão còeêa â çaâècèìocòè oò cocòoÿíèÿ ÿ÷eéêè WHATSTEK (còapøèé áèò=0 - ãëaâíûé, 1 - ïoáo÷íûé). Ýòa ïoäïpoãpaììa âûçûâaeòcÿ ïoäïpoãpaììoé ELEMENT. Eäèícòâeííoe ìecòo, ãäe òpeáóeòcÿ c÷èòûâaíèe co âòopoão còeêa - âûçoâ ïpoöeäópû, ãäe èç íeão èçâëeêaþòcÿ ïapaìeòpû.

%ENDL

   Èíòepôeéc ïoäïpoãpaìì paáoòû co còeêaìè:
                \çaïècü\           \÷òeíèe\
   âxoä:   A=çaïècûâaeìûé áaéò     -
   âûxoä:  A íeèçâecòío         A=c÷èòaííûé áaéò
           Y=0                  Y=0
           X íe ìeíÿeòcÿ        X íe ìeíÿeòcÿ

Boçìoæíûe oøèáêè:

%LISTM

-ïepeïoëíeíèe còeêa;
-èc÷epïaíèe còeêa (ïpè íopìaëüíoé paáoòe cècòeìû oøèáêa íe äoëæía âoçíèêaòü).

%ENDL

Ïpè oápaùeíèè ê ýòèì ïoäïpoãpaììaì cëeäóeò ïoìíèòü, ÷òo oíè ìoãóò äaòü cèãíaë oá oøèáêe è caìocòoÿòeëüío âûçâaòü peaêöèþ ía íee. Heoáxoäèìo ëèáo oáecïe÷èòü íeâoçìoæíocòü âoçíèêíoâeíèÿ oøèáoê, ëèáo ïpeäócìoòpeòü ocoáóþ ïpoãpaììó èx oápaáoòêè è íacòpoèòü ía íee cècòeìíûé âeêòop peaêöèè ía oøèáêè (cì.8.5.1).

8.1.4. Ïoäïpoãpaììû óïpaâëeíèÿ äèíaìè÷ecêèìè áóôepaìè.

Ýòè ïoäïpoãpaììû cëóæaò äëÿ opãaíèçaöèè è ïoääepæêè äèíaìè÷ecêèx áóôepoâ ïepeìeííoé äëèíû.

Bceão èìeþòcÿ 4 òèïa áóôepoâ (â cêoáêax óêaçaíû íoìepa áóôepoâ):

    - ïoòoê êoìaíä            (X=0),
    - áóôep êoícòaíò          (X=2),
    - áóôep cìeùeíèé          (X=4),
    - òaáëèöa èäeíòèôèêaòopoâ (X=6).

Bce oíè, êaê áûëo óêaçaío ïpè oïècaíèè ïpoeêòíûx peøeíèé, èìeþò çapaíee íe oïpeäeëeííóþ äëèíó è oáùèé ïpèíöèï oápaáoòêè. Kpoìe òoão, áóôepa ïepâûx òpex òèïoâ ìoãóò cóùecòâoâaòü íe â eäèícòâeííoì ÷ècëe (ecëè ecòü ïpoöeäópû). Ïo ýòèì ïpè÷èíaì íaïècaíû äâe óíèâepcaëüíûe ïoäïpoãpaììû coçäaíèÿ äèíaìè÷ecêoão áóôepa è çaïècè áaéòa â eão êoíeö.

Ha âxoä oáeèì ïoäïpoãpaììaì â peãècòpe X ïepeäaeòcÿ íoìep áóôepa.

%LISTD

-Ïpoãpaììa INIT opãaíèçóeò ïócòoé áóôep, çaêaçûâaÿ äëÿ íeão áëoê paçìepoì 16 áaéòoâ;

-Ïpoãpaììa WBUF äoïècûâaeò coäepæèìoe aêêóìóëÿòopa ê ïpeäâapèòeëüío èíèöèaëèçèpoâaííoìó áóôepó; ecëè áóôep çaíèìaeò âecü oòâeäeííûé ïoä íeão áëoê ïaìÿòè, òo ïepeä çaïècüþ áaéòa íeoáxoäèìo çaêaçaòü áoëüøèé áëoê è ïepeïècaòü â íeão áóôep:

%LISTL

-áëoê ïaìÿòè ocâoáoæäaeòcÿ (ïpè ýòoì coxpaíÿeòcÿ coäepæèìoe ècïoëüçóeìûx CÓÏ ïepâûx 5 áaéòoâ áëoêa),

-ó CÓÏ çaïpaøèâaeòcÿ íoâûé, âäâoe áoëüøèé áëoê ïaìÿòè,

-ecëè íoâûé áëoê âûäeëeí, òo â íeão ïepeïècûâaòcÿ coäepæèìoe áóôepa. Ecëè íeò, òo ó CÓÏ çaêaçûâaeòcÿ áëoê ïaìÿòè ïpeæíeão paçìepa (÷òoáû âoccòaíoâèòü áóôep), ïpè ýòoì âûäeëÿeòcÿ còapûé áëoê (cì. 8.1.2, ï.5), è âûäaeòcÿ cèãíaë oá oøèáêe.

%ENDL

%ENDL

Paáo÷èe oáëacòè:

%LISTM

-BEGIN - ía÷aëa áëoêoâ ïaìÿòè, âûäeëeííûe ïoä áóôepa; íóëeâoé còapøèé áaéò aäpeca oáoçía÷aeò oòcóòcòâèe äaííoão áóôepa;

-COMMANDS - aäpeca ïepâûx câoáoäíûx áaéòoâ â áëoêax (óêaçaòeëè êoíöoâ áóôepoâ);

-LAST - aäpeca ïocëeäíèx áaéòoâ áëoêoâ ïaìÿòè, âûäeëeííûx ïoä áóôepa.

%ENDL

8.1.5. Ïpoãpaììa COPY/DELETE.

Ïpoãpaììa COPY/DELETE ïpeäíaçía÷eía äëÿ oápaáoòêè \oáúeêòoâ â ïóëe\, ò.e. ïo câoeìó ópoâíþ oía âûøe âcex oïècaííûx â ýòoì paçäeëe ïpoãpaìì. Oía cocòoèò èç äâóx ïoäïpoãpaìì: COPY è DELETE.

Ïoäïpoãpaììa COPY ïoëó÷aeò ía âxoäe aäpec oáúeêòa â ADR1 è âoçâpaùaeò aäpec peçóëüòaòa - êoïèè ècxoäíoão oáúeêòa - â ADR4.

Ïoäïpoãpaììa DELETE ocâoáoæäaeò ïaìÿòü, çaíÿòóþ oáúeêòoì, aäpec êoòopoão ïepeäaeòcÿ eé â ADR1.

Ïpè êoïèpoâaíèè ÷èceë è òeêcòoâ äocòaòo÷ío ïpocòo ïoëó÷èòü oò CÓÏ áëoê ïaìÿòè òpeáóeìoão paçìepa è ïepeïècaòü òóäa coäepæèìoe áëoêa. Aíaëoãè÷ío, ïpè óíè÷òoæeíèè äocòaòo÷ío òoëüêo ocâoáoäèòü çaíèìaeìûé èìè áëoê.

Ïpè êoïèpoâaíèè ïócòoão çía÷eíèÿ è còaíäapòíoé ïpoöeäópû äocòaòo÷ío âepíóòü ïoäaííûé ía âxoä aäpec, a ïpè èx óíè÷òoæeíèè íèêaêèx äeécòâèé ïpeäïpèíèìaòü íe íaäo.

Ïpè êoïèpoâaíèè ïpoöeäópû, ôóíêöèè è ôaéëa ïpoècxoäèò óâeëè÷eíèe oäíoáaéòoâoão c÷eò÷èêa ccûëoê è âûäaeòcÿ aäpec òoão æe oáúeêòa. Oòcþäa è cëeäóeò ïpèíöèï cpaâíeíèÿ oáúeêòoâ ýòèx âèäoâ ïo ccûëêe. Ïpè äocòèæeíèè c÷eò÷èêoì êpèòè÷ecêoão çía÷eíèÿ - 256 - âûäaeòcÿ cèãíaë oá oøèáêe ("ìíoão êoïèé"). Ïpè èx óíè÷òoæeíèè peaëüíoe ocâoáoæäeíèe ïaìÿòè ïpoècxoäèò òoëüêo ïocëe äocòèæeíèÿ c÷eò÷èêoì ccûëoê íóëeâoão çía÷eíèÿ.

Ïpè êoïèpoâaíèè èëè óíè÷òoæeíèè cocòaâíûx còpóêòóp - êopòeæeé, ìíoæecòâ è çaïèceé - ècïoëüçóeòcÿ cxoæecòü èx âíóòpeííeão ïpeäcòaâëeíèÿ. Äëÿ opãaíèçaöèè peêópcèè ècïoëüçóeòcÿ âcïoìoãaòeëüíûé còeê. Ïpè íexâaòêe ïaìÿòè äëÿ êoïèè áoëüøoé còpóêòópû ïpoècxoäèò ôèêòèâíoe êoïèpoâaíèe ocòaòêa còpóêòópû c öeëüþ âepíóòücÿ èç peêópcèè, çaòeì âíoâü ïoëó÷eííaÿ còpóêòópa óíè÷òoæaeòcÿ è âûäaeòcÿ cèãíaë oá oøèáêe.

Ècïoëüçoâaíèe äaííoé ïoäïpoãpaììû oáëeã÷aeò peaëèçaöèþ ïpèíÿòoão â cècòeìe ïpèíöèïa êoïèpoâaíèÿ oáúeêòa ïpè íeoáxoäèìocòè coçäaíèÿ äoïoëíèòeëüíoé ccûëêè ía íeão è óíè÷òoæeíèÿ eão ïpè óíè÷òoæeíèè ýòoé ccûëêè. Äocòoèícòâoì ýòoão ïpèíöèïa ÿâëÿeòcÿ oòcóòcòâèe íaäoáíocòè â cpeäcòâax cáopêè ìócopa. K eão íeäocòaòêaì ìoæío oòíecòè ça÷acòóþ íeíóæíûe êoïèpoâaíèÿ oáúeêòoâ (íaïpèìep, âoçâpaòíoão ïapaìeòpa ïpè âxoäe â ïpoöeäópó).

Ïoäïpoãpaììa COPY/DELETE oáëeã÷aeò paáoòó c oáúeêòaìè ía âíóòpeííeì ópoâíe P-èíòepïpeòaòopa.

Ïpè paáoòe ïpoãpaììû COPY âeäeòcÿ òùaòeëüíaÿ oápaáoòêa oøèáêè c öeëüþ oáecïe÷èòü oòcóòcòâèe ìócopa ïpè íexâaòêe ïaìÿòè âo âpeìÿ êoïèpoâaíèÿ cocòaâíoão oáúeêòa (óíè÷òoæeíèe óæe cêoïèpoâaííûx ÷acòeé oáúeêòa).

Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"